博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React 30 秒速学:制作自动识别链接的文本组件
阅读量:6137 次
发布时间:2019-06-21

本文共 1136 字,大约阅读时间需要 3 分钟。

本文译自:。React 30 秒速学:全篇中文翻译、学习,地址:,所有案例进行分析、注释、上线。

30-seconds-of-react 教程里, String 这一节做了一个自动识别文本中的链接的组件,还挺实用,也可以加深我们对正则使用的了解。

AutoLink自动识别文本中的链接

将字符串中的URL转换为适当的 <a> 元素。

  • 使用正则表达式配合 String.prototype.split()String.prototype.match()来查找字符串中的URL。
  • 返回一个<React.Fragment>不产生多余的元素;其匹配的URL呈现为<a>元素,必要时需要处理丢失的协议前缀补充为http://,并将其余字符串呈现为明文。
import React from "react";function AutoLink({ text }) {  // 用于找 url 的正则表达式  const delimiter = /((?:https?:\/\/)?(?:(?:[a-z0-9]?(?:[a-z0-9\-]{1,61}[a-z0-9])?\.[^\.|\s])+[a-z\.]*[a-z]+|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3})(?::\d{1,5})*[a-z0-9.,_\/~#&=;%+?\-\\(\\)]*)/gi;  return (    
{/* 按正则分割为数组,最终渲染时被显示在了一起 */} {text.split(delimiter).map(word => { // foo bar baz // http://example.org // bar console.log(word); // 从以上分割的内容中找到具体的url的部分 // 进行超链接的处理 let match = word.match(delimiter); if (match) { let url = match[0]; return (
{url} ); } return word; })}
);}复制代码
例子
export default function() {  return 
;}复制代码

转载地址:http://kqrua.baihongyu.com/

你可能感兴趣的文章
纯原生组件化-模块化的探索
查看>>
Servlet自动刷新页面
查看>>
Spring Cloud Config 2.1.2、2.0.4 和 1.4.6 发布,修复 CVE-2019-3799
查看>>
智能家居如火如荼,各玩家的第一步棋都下在哪里?
查看>>
Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架
查看>>
内置函数
查看>>
这届showgirl真不行,那我们盘点一下ChinaJoy的“八宗最”
查看>>
激光雷达——人工智能机器人的行走“慧眼”
查看>>
达美乐和福特想要搞事情,准备用自动驾驶汽车送外卖
查看>>
Hadoop2源码分析-YARN RPC 示例介绍
查看>>
关于AI,那些年“砖家”曾经发表的所谓科技预测
查看>>
航天科工自行研发“反无人机”系统,综合拦截成功率高达80%
查看>>
中科曙光与寒武纪合作推出AI服务器,将实时分析能力提升百倍
查看>>
IBM押注AI、量子计算、区块链,发布未来5年五大科技预测
查看>>
风口行业程序员必看!直播网络成本降低70%,智能接入网关是怎样实现的?
查看>>
2018第五届中国机器人应用与产业发展论坛 &2018中国智能包装工业发展大会
查看>>
日本研发投篮机器人Cue,投球命中率接近100%
查看>>
WPS for Linux字体配置(Ubuntu 16.04)
查看>>
陈妍希和你一起带“蛙儿子”做公益,守护宝贝她有话跟你说!
查看>>
享受生活:值得关注的七件家居智能硬件
查看>>